package com.wei.czz.common.enums.blog;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * Created by IntelliJ IDEA.
 *
 * @author wei
 * date: 2022-03-01 22:36:35
 * className: BlogStatsFlowDict 博客统计流水字典枚举类
 * version: 2.0
 * description:
 */
@Getter
@AllArgsConstructor
public enum BlogStatsFlowEnum {

    /*
        博客统计流水公共字典值
     */
    // 用户统计数据
    ISSUE_BLOG_STATS(0, "已发布博客数"), BLOG_VIEW_STATS(1, "浏览数"),
    BLOG_LIKE_STATS(2, "点赞数"), BLOG_COMMENT_STATS(3, "评论数"),

     /*
        博客统计流水表字段字典值
     */
    // 统计类型字段枚举对象
    VIEW_TYPE(0, "博客浏览次数统计类型"), LIKE_TYPE(1, "博客点赞统计类型"),
    COLLECT_TYPE(2, "博客被收藏统计类型"), COMMENT_TYPE(3, "博客评论统计类型"),
    // 数值类型字段枚举对象
    DAY_VALUE(0, "博客日统计数值"), MONTH_VALUE(1, "博客月统计数值"),
    YEAR_VALUE(2, "博客年统计数值");

    /**
     * 字典值
     */
    private final Integer value;

    /**
     * 字典值的描述信息
     */
    private final String name;

    /**
     * 获取用户博客统计数据类型枚举对象
     * @param value 参数值
     * @return 用户博客统计类型
     */
    public static BlogStatsFlowEnum getUserBlogStats(Integer value) {
        if (value.equals(ISSUE_BLOG_STATS.getValue())) {
            return ISSUE_BLOG_STATS;
        } else if (value.equals(BLOG_VIEW_STATS.getValue())) {
            return BLOG_VIEW_STATS;
        } else if (value.equals(BLOG_LIKE_STATS.getValue())) {
            return BLOG_LIKE_STATS;
        } else if (value.equals(BLOG_COMMENT_STATS.getValue())) {
            return BLOG_COMMENT_STATS;
        } else {
            return null;
        }
    }

    /**
     * 获取统计数据类型枚举对象
     * @param value 参数值
     * @return 博客统计数据类型
     */
    public static BlogStatsFlowEnum getDataValue(Integer value) {
        if (value.equals(DAY_VALUE.value)) {
            return DAY_VALUE;
        } else if (value.equals(MONTH_VALUE.value)) {
            return MONTH_VALUE;
        } else if (value.equals(YEAR_VALUE.value)) {
            return YEAR_VALUE;
        } else {
            return null;
        }
    }
}
